home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / lib-old / grep.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  3KB  |  107 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import regex
  5. from regex_syntax import *
  6. opt_show_where = 0
  7. opt_show_filename = 0
  8. opt_show_lineno = 1
  9.  
  10. def grep(pat, *files):
  11.     return ggrep(RE_SYNTAX_GREP, pat, files)
  12.  
  13.  
  14. def egrep(pat, *files):
  15.     return ggrep(RE_SYNTAX_EGREP, pat, files)
  16.  
  17.  
  18. def emgrep(pat, *files):
  19.     return ggrep(RE_SYNTAX_EMACS, pat, files)
  20.  
  21.  
  22. def ggrep(syntax, pat, files):
  23.     global opt_show_filename
  24.     if len(files) == 1 and type(files[0]) == type([]):
  25.         files = files[0]
  26.     
  27.     opt_show_filename = len(files) != 1
  28.     syntax = regex.set_syntax(syntax)
  29.     
  30.     try:
  31.         prog = regex.compile(pat)
  32.     finally:
  33.         syntax = regex.set_syntax(syntax)
  34.  
  35.     for filename in files:
  36.         fp = open(filename, 'r')
  37.         lineno = 0
  38.         while None:
  39.             line = fp.readline()
  40.             if not line:
  41.                 break
  42.             
  43.             lineno = lineno + 1
  44.             if prog.search(line) >= 0:
  45.                 showline(filename, lineno, line, prog)
  46.                 continue
  47.         fp.close()
  48.     
  49.  
  50.  
  51. def pgrep(pat, *files):
  52.     global opt_show_filename
  53.     if len(files) == 1 and type(files[0]) == type([]):
  54.         files = files[0]
  55.     
  56.     opt_show_filename = len(files) != 1
  57.     import re as re
  58.     prog = re.compile(pat)
  59.     for filename in files:
  60.         fp = open(filename, 'r')
  61.         lineno = 0
  62.         while None:
  63.             line = fp.readline()
  64.             if not line:
  65.                 break
  66.             
  67.             lineno = lineno + 1
  68.             if prog.search(line):
  69.                 showline(filename, lineno, line, prog)
  70.                 continue
  71.         fp.close()
  72.     
  73.  
  74.  
  75. def showline(filename, lineno, line, prog):
  76.     if line[-1:] == '\n':
  77.         line = line[:-1]
  78.     
  79.     if opt_show_lineno:
  80.         prefix = `lineno`.rjust(3) + ': '
  81.     else:
  82.         prefix = ''
  83.     if opt_show_filename:
  84.         prefix = filename + ': ' + prefix
  85.     
  86.     print prefix + line
  87.     if opt_show_where:
  88.         (start, end) = prog.regs()[0]
  89.         line = line[:start]
  90.         if '\t' not in line:
  91.             prefix = ' ' * (len(prefix) + start)
  92.         else:
  93.             prefix = ' ' * len(prefix)
  94.             for c in line:
  95.                 if c != '\t':
  96.                     c = ' '
  97.                 
  98.                 prefix = prefix + c
  99.             
  100.         if start == end:
  101.             prefix = prefix + '\\'
  102.         else:
  103.             prefix = prefix + '^' * (end - start)
  104.         print prefix
  105.     
  106.  
  107.